package net.lab0.tools.evo.iface;

import java.util.List;

import net.lab0.tools.Pair;

public interface Selection<I extends Individual<I>>
{
    /**
     * Selects 2 individuals in the given population.
     * 
     * @param individuals
     *            The list to pick from.
     * @param pairsCount
     *            The number of pairs to select.
     * @return A list of pairs of individuals: the selected pairs.
     */
    List<Pair<I, I>> selectIndividuals(List<I> individuals, int pairsCount);
}
